perm filename TEST1.SAI[SAI,BGB]2 blob sn#056548 filedate 1973-08-05 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	BEGIN "TEST"
C00005 ENDMK
C⊗;
BEGIN "TEST"
	DEFINE !="COMMENT";
	DEFINE π="3.1415927";
	REQUIRE "⊂⊃⊂⊃" DELIMITERS;
	REQUIRE "GEOMES.HDR" SOURCE_FILE;

	INTEGER B1,B2,F,E,V,V0,T;
	INTEGER WORLD,WINDOW,CAMERA;
EXTERNAL SIMPLE PROCEDURE DPYSET(INTEGER ARRAY X);
EXTERNAL SIMPLE PROCEDURE DPYOUT(INTEGER X);
EXTERNAL SIMPLE PROCEDURE AIVECT(INTEGER X,Y);
EXTERNAL SIMPLE PROCEDURE AVECT(INTEGER X,Y);
EXTERNAL SIMPLE PROCEDURE DPYSST(STRING STR);
	INTEGER ARRAY DPYBUF[0:100];
	DPYSET(DPYBUF);
	AIVECT(-400,-400);
	AVECT(+400,-400);
	AVECT(+400,+400);
	AVECT(-400,+400);
	AVECT(-400,-400);
	AIVECT(0,0);DPYSST("HI THERE YOU ALL.");DPYOUT(0);
	OUTSTR("DO WE HAVE A DISPLAY NOW ?");INCHRW;

! UNIVERSE CREATION;

	WORLD ← MKWORLD;	! MAKE A WORLD;
	WINDOW ← MKWINDOW;	! MAKE A WINDOW;
	CAMERA ← MKCAMERA;	! MAKE A CAMERA;
	BATT(WORLD,WINDOW);	! BODY-ATTACH WORLD TO WINDOW;
	BATT(CAMERA,WINDOW);	! BODY-ATTACH CAMERA TO WINDOW;
	
! BODY CREATION;
	
	B1 ← MKCUBE(4.0,1.0,2.0);      ! MAKE RECTANGULAR RIGHT PRISM;
	B2 ← MKCOPY(B1);	       ! COPY THE PRISM;

! ACTION;

	FOR T←1 STEP 1 UNTIL 30 DO
		 OUTSTR(13&10);		! FLUSH THE PAGE PRINTER;
	TRANSLATE(B1,0,0,4);		! FOUR FEET +Z TOWARDS CAMERA;
	ROTATE(B2,π/8,π/8,0);		! ROTATION ABOUT X & Y AXES;
	WHILE TRUE DO 
	BEGIN
		ROTATE(B1,0,-π/17,0);	! ROTATION CW ABOUT Y-AXIS;
	FOR T←1 STEP 1 UNTIL 40 DO
	BEGIN 
		ROTATE(B1,π/20,0,0);	! ROTATION CCW ABOUT X-AXIS;
		ROTATE(B2,0,π/16,0);	! ROTATION CCW ABOUT Y-AXIS;
		SHOW2(WINDOW,1);	! DISPLAY A SIMULATED IMAGE;
		IF INCHRS≥1 THEN DONE;	! EXIT ON TYPE-ANY-KEY;
	END;
	END;

END "TEST"; BGB 19 MARCH 1973.